Mobile device for measuring image quality

ABSTRACT

A mobile device and method for measuring image quality parameters, the device including a digital camera configured to capture one or a plurality of images, a processor configured to select one or a plurality of pairs of points from each image of the one or plurality of images, each pair of points connectable by a line, the processor further configured to compute one or a plurality of image quality parameters from at least one of the lines, and the processor further configured to compute a representative image quality parameter from the image quality parameters, and an output unit configured to communicate one or a plurality of representative image quality parameters.

BACKGROUND

In quality control instances, particularly in quality control of printedimages, it may be typical to quantitatively assess the amount of grain,i.e. extent of graininess, e.g., the extent to which the image, or animage of a substance appears to be composed of grain-like particles,and/or amount of mottle, i.e. mottledness, e.g., spotty or patchy colorwithin an image.

In some examples, it may be desired to assess graininess and mottlednessin the field, or on the manufacturing floor, where a dedicatedmeasurement device is not immediately present, and when results need tobe found immediately.

One way to assess graininess is human metrology. However, in the field,on a short notice, and with untrained personnel, there may be some usefor a standardizable machine vision approach.

BRIEF DESCRIPTION OF THE DRAWINGS

Examples are described in the following detailed description andillustrated in the accompanying drawings in which:

FIG. 1 a is a schematic illustration of a portable device for measuringimage quality according to an example;

FIG. 1 b is a schematic illustration of an image that a portable devicefor measuring image quality, in accordance with examples, may analyze;

FIG. 2 is a schematic illustration of a method for measuring imagequality, according to an example;

FIG. 3 is a schematic illustration depicting a detected value such asimage intensity at a specific location by a portable device formeasuring image quality according to an example; and,

FIG. 4 is a method for the measurement of parameters of image quality,according to an example.

It will be appreciated that for simplicity and clarity of illustration,elements shown in the figures have not necessarily been drawn to scale.For example, the dimensions of some of the elements may be exaggeratedrelative to other elements for clarity. Further, where consideredappropriate, reference numerals may be repeated among the figures toindicate corresponding or analogous elements.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the methods andapparatus. However, it will be understood by those skilled in the artthat the present methods and apparatus may be practiced without thesespecific details. In other instances, well-known methods, procedures,and components have not been described in detail so as not to obscurethe present methods and apparatus.

Although the examples disclosed and discussed herein are not limited inthis regard, the terms “plurality” and “a plurality” as used herein mayinclude, for example. “multiple” or “two or more”. The terms “plurality”or “a plurality” may be used throughout the specification to describetwo or more components, devices, elements, units, parameters, or thelike. Unless explicitly stated, the method examples described herein arenot constrained to a particular order or sequence. Additionally, some ofthe described method examples or elements thereof can occur or beperformed at the same point in time.

Unless specifically stated otherwise, as apparent from the followingdiscussions, it is appreciated that throughout the specification,discussions utilizing terms such as “adding”. “associating” “selecting,”“evaluating,” “processing,” “computing,” “calculating,” “determining,”“designating,” “allocating” or the like, refer to the actions and/orprocesses of a computer, computer processor or computing system, orsimilar electronic computing device, that manipulate, execute andlortransform data represented as physical, such as electronic, quantitieswithin the computing system's registers and/or memories into other datasimilarly represented as physical quantities within the computingsystem's memories, registers or other such information storage,transmission or display devices.

FIG. 1 a is a schematic illustration of a portable device for measuringimage quality according to an example.

Typically a device 90, in some examples, a portable device, e.g., amobile device, e.g., a smartphone may be configured to operate asoftware application, an application. In some examples, the applicationmay include a non-transitory computer readable medium comprisinginstructions.

In some examples, an application 100 is configured to operate on commonmobile operating systems (OS) used by smartphones include Apple's ADS,Google's Android, Microsoft's Windows Phone, RIM's BlackBerry OS, andembedded Linux distributions such as Maemo and MeeGo.

Typically smartphones independent of the operating system will allow foradvanced application programming interfaces (APIs) for runningthird-party applications. APIs may typically be source code-basedspecifications intended to be used as an interface by softwarecomponents to communicate with each other. An API may includespecifications for routines, data structures, object classes, andvariables. These APIs may allow those applications or applications,e.g., application 100 to integrate with the smartphone's OS.

In some examples, a smartphone running the Android operating system, ora smartphone running other know operating systems, may be configured torun an application 100.

Typically, device 90 may be a smartphone with an integrated, or in someexamples, a coupled digital camera 110, other cameras may also be used.In some examples the camera may be in wireless communication with thesmartphone. In some examples, the smartphone may have a flash associatedwith digital camera 110.

Digital camera 110, when operating in conjunction with the application,may be configured to capture one or a plurality of images 150, whereimage 150 is a digitally captured representation of an area 51.

In some examples, area 51 may be part of a larger printed image 50, theuser analyzing the images 150 representing area 51 within a larger imagefor image quality. In some examples the user may examine one or aplurality of areas 51, capturing one or a plurality of images 150 forone or a plurality of areas 51.

Typically, the size of area 51 may be constrained by an angle ofviewing. In some examples, area 51 may be constrained by focusingcapabilities of digital camera 110.

In some examples, a lens may be placed in front of the camera. Typicallythe lens may be a magnifying lens, e.g., a magnifying glass, someone'sglasses, a lens taken from apiece of equipment such as a CD player,and/or any lens to be found in the field. In some examples, the lens maybe placed in from of digital camera 110 to reduce the magnitude of area51.

In some examples, area 51 may be a representative area of substance, theuser analyzing image 150, as representative of area 51, or lamer area50, for quality control.

Typically, environmental variations will not affect the relativeconsistency of the results, e.g., the output of application 100 may stayrelatively the same from location to location. Typically, human uservariations will not affect the relative consistency of results ofapplication 100.

Typically application 100 will output valve that may be communicated toan individual who is not at the location where the digital camera iscapturing image 150.

In some examples, application 100 may have algorithms that allowapplication 100 to function consistently independent of digital camera's110 rotations, or, in some examples, independently of an image's 150rotation.

In some examples, application 100 may have algorithms that allowapplication 100 to function relatively consistently independent of thehardware associated with or comprising device 90.

In some examples, application 100 may be configured to filter out highfrequency noise, as described below.

In some examples, application 100 may be configured to filer out lowfrequency noise, e.g., illumination variations, as described below.

In some examples, application 100 may be configured to have linearcomplexity, or near linear complexity, e.g., the running time of thealgorithm tends to increases linearly with the size of the input.

Typically, linear complexity, or near-linear complexity allowsapplication 100 to have minimal processing requirements, and allows, insome examples, application 100 to be computationally quick independentof hardware and/or other platform limitations of device 90.

In some examples, the integrated or coupled digital camera 110 may beconfigured to run under the control of application 100. In someexamples, the image acquired by digital camera 110 is typicallyconfigured to be of 5 to 10 megapixels in size.

Typically, a megapixel may refer to one million pixels, and the termpixel typically refers to a single scalar element of a multi-componentrepresentation, e.g., a photosite in the camera sensor context. The termmegapixel may not only be used in referring to the number of pixels inan image, but in some examples, may also be used to express the numberof image sensor elements of digital camera 110, or the number of displayelements of digital displays.

In some examples, device 90 may contain digital camera 110. Currentlythere, are in the market, many cameras with various resolutions, all ofwhich may be used. As an example consider camera 110 that makes a2580×2048 pixel image, digital camera 110 may typically uses a few extrarows and columns as sensor elements and may be commonly said be classedas a 5.2 or 5.3 megapixel camera sensor depending on whether the numberreported is the “effective” or the “total” pixel count.

Typically, digital camera 110 may use photosensitive electronics, eithera charge-coupled device (CCD) or a complementarymetal-oxide-semiconductor (CMOS) image sensor. The photosensitiveelectronics, consisting of a large number of single sensor elements, mayrecord a measured intensity level.

In some examples, the sensor array in digital camera 110 may be coveredwith a patterned color filter mosaic having red, green, and blueregions, e.g., in the Bayer filter arrangement, where a Bayer filterarrangement may refer to a block of four filters which are arranged inthe order of blue, green, green and red.

Typically digital camera 110 may interpolate the color information ofneighboring sensor elements, through a process called demosaicing, tocreate the final image. These sensor elements are often called “pixels”,even though they typically only record 1 channel (only red, or green, orblue) of the final color image.

Typically, when a sensor element records 1 channel (only red, or green,or blue) of the final color image, two of the three color channels foreach sensor need to be interpolated. In some examples, when two of thethree color channels for each sensor need to be interpolated, theN-megapixel camera that produces an N-megapixel image, may provide onlyone-third of the information that an image of the same size could getfrom a scanner or other optical device,

In some examples, digital camera 110 may be configured to take imagescontaining more pixels, in some examples, digital camera 110 may beconfigured to take pictures containing fewer pixels. In some examples,many images are taken in an infinite loop, until a user quits or exitsapplication 100.

In some examples, digital camera 110 may be configured to capture image150. Typically application 100 is configured to operate digital camera110 in a macro mode. In some examples, captured image 150 may becompressed, e.g., as a JPEG. JPEGs, and other commonly use methods oflossy compression for digital photography may allow fir the compressionto be adjusted, allowing for a selectable tradeoff between storage sizeand image quality. Typically, JPEG typically achieves a 10 to 1compression with little perceptible loss in image quality. Lossycompression algorithms in general for image compression compress data bydiscarding, i.e., losing, some of it. The compression algorithms aim tominimize the amount of data that needs to be held, handled, and/ortransmitted by the smartphone and/or other devices 90.

In some examples, captured image 150 may not be compressed. Whencaptured image 150 is compressed, in some examples it can bedecompressed by requesting a service from the operating system's kernel,e.g., a system call. Typically, the operating system executes at thehighest level of privilege, and allows applications to request servicesrequiring those privileges via system calls, which are often executedvia interrupts, e.g., the interrupt automatically puts a processor intosome required privilege level, and then passes control to the operatingsystem's kernel, which determines whether the calling program should begranted the requested service, e.g., a decompression of an image 150. Ifthe service is granted, the kernel executes a specific set ofinstructions over which the calling program has no direct control,returns the privilege level to that of the calling program, and thenreturns control to the calling program.

Typically, once image 150 is captured on digital camera 110, the greenchannel Tay be obtained or extracted from the image. Typically, adigital camera may have some multiple of green receptors relative to redand blue receptors. In some mobile operating systems, e.g., on theandroid mobile operating system, an image may be obtainable in a YCbCrformat. Typically YCbCr, Y′CbCr, or Y Pb/Cb Pr/Cr, also written as YCBCRor Y′CBCR is a family of color spaces used as a part of the color imagepipeline in digital photography where Y′ is the luma component and CBand CR are the blue-difference and red-difference chroma components. Insome examples, Y′CbCr is an encoding ROB information in color space.Typically, the actual color displayed may depend on the actual ROBprimaries used to display the signal. Therefore a value expressed asY′CbCr may be predictable only if standard RGB primary chromaticitiesare used. Where, in some operating systems, the reconstruction algorithmfor interpolating over the color channels may not be known, only onechannel may be used. Typically, when the reconstruction algorithm forinterpolating over the color channels is not known, the green channel isextracted and all other channels are ignored.

Typically, when the reconstruction algorithm for interpolating over thecolor channels is not known and the green channel is extracted with allother channels ignored application 100 may apply algorithms to determinegraininess to gray level grain or green level grain and typically not tograin in other color channels.

In some examples, when analyzing image 150 a green channel is selectedand a red and a blue channel are discarded. Typically, when the greenchannel is selected and the red and the blue channels are discarded theimage quality parameter is computed only for the green channel.

In some examples, luminescence (Y) channel is selected and color blue(Cb) and color red (Cr) information is discarded. Typically, whenluminescence (Y) channel is selected and color blue (Cb) and color red(Cr) information is discarded the image quality parameter is computedonly of the luminance of image 150.

Typically, image processing may be do by processor 130 on a thread thatis separate from a graphical user interface (GUI).

In some examples the infinite loop may include the following: Captureimage via digital camera 110, fill image buffer in digital camera 110;Calculate parameters, as described below; Output parameters; Repeat, asdescribed below.

A memory unit 120 is typically configured to store captured images.Memory unit 120 may also be configured to store outputted parameterslist 80, in some examples a list of computed image quality parametersdescribed below. Memory unit 120 may typically be the onboard memory ofa smartphone or other device on which application 100 is operating, insome examples, memory unit 120 may be an external memory unit such as aremovable flash memory card or other memory units.

Typically, application 100 uses sufficient memory to save the individualimages. Typically, application 100 does not require substantial memoryover and above the memory necessary to store the images.

A processor 130 may compute one or a plurality of image qualityparameters. Typically, digital processor 130 computes an image qualityparameter for one or a plurality of the images. In some examples,digital processor 130 computes an image quality parameter for less thanall of the images. In some examples, processor 130 may be a processorthat is a component of a smartphone. In some examples, processor 130 maybe based on an ARM core, in some examples processor 130 may be inwireless communication with the smartphone.

In some examples, application 100 is configured to solve the algorithmsand present a result using even the slow processors running at slowspeeds, and without any dedicated hardware acceleration.

An output unit 140, in some examples a monitor or a speaker, or othermethods of outputting information, may be configured to communicate saidone or a plurality of parameters to a user of application 100 and/or todisplay an output 190 of an algorithm, the algorithms described below.

Typically, output unit 140 may be the display of the phone, but theresult, e.g., one or a plurality of the parameters may also becommunicated by radio waves or through a USB connector, or othermethods.

FIG. 1 b is a schematic illustration of an image that the device mayanalyze. Processor 130 is typically configured to select a one or aplurality of pairs of locations, e.g., pairs of points 180, within image150.

In some examples, processor 130 may implement a loop program in which apair of points 180, including point A and point B, or coordinates (e.g.in image height and width) is selected using a random number generator.The random lumber generator may be the Java Math.random function, orother random number generators.

The number of iterations for this loop is typically between 100 and 1000iterations. In some examples, a small number of iterations may beperformed to increase the speed of the operation of the algorithm. Insome examples, a larger number of iterations may be used to increaseaccuracy of the algorithm.

Typically, the capabilities of the operating platform and the user'stime limitations will be used to determine the number of iterationsperformed by the algorithm.

In some examples, pairs of points 180, are chosen at random withoutregard to the angle between the two points. Typically, the slope of aline m between the pair of points 180 will have minimal affect on theresult of the algorithm as grain and mottle are typically relativelyinvariant to rotation.

In some applications, processor 130 may be configured to selectprescribed angles between pair of points 180. For example, whenmeasuring banding or strips defects of image quality in image 150processor 130 may be configured to select vertical or horizontal strips,e.g., slope=0. In some examples the horizontal and/or vertical of animage may be defined in either relation to the image frame, or to theearth's gravity, using an accelerometer, the accelerometer typically acomponent of the smartphone.

Typically, the distance between point A and point B may be higher than apredetermined number of pixels, for example, the number of pixels withina tenth of a dimension, e.g., width or length, of image 150.

For any given selected pairs of points 180, processor 130 may compute animage quality parameter. Typically, a plurality of parameters may becollected for a plurality of pairs of points 180. Typically, theplurality of parameters may be distilled to compute at least one imagequality parameter for outputting to a user.

Typically, the algorithm may initially acquire an image 150. Thealgorithm may loop several times, computing a parameter for at least oneof the pairs of points 180, over a plurality of pairs of points 180,pairs of points 180, e.g., point A and point B in image 150, over aplurality of images 150.

Application 100 may distill many parameters relating to one or aplurality of pairs of points 180 to at least one output parameter.Application 100 may take successive images 150, looping and computingthe algorithms and distilling many parameters relating to one or aplurality of pairs of points 180 to at least one output parameter forone or a plurality of the pairs of points 180 for at least one of theimages 150, resulting in an output 190 to the user.

Typically a line 160 can be drawn between point A and Point B. Line 160may be divided into at least two segments 170. Typically, when computingthe parameters described above, only locations, e.g., pixels or pointsin image 150 located at or near line 160 are taken into account, toreduce computation time. Typically, when line 160 is divided, into atleast two segments 170 segment image quality parameters may be assessedfor at least one or a plurality of segments 170.

Typically, many parameters are distilled for each of the pairs of points180, generally speaking, in reference to the distribution of theirvalues.

In some examples, for relatively fast results, the median function maybe used e.g., Output 190=Median(plurality of parameters for pairs ofpoints 180);

Typically, the outputted parameters may be an outputted parameters list80, e.g., a list of image quality parameters that is generated by one ora plurality of algorithms, the algorithms described below, in real time,or near real time, typically from a rate of an item per second to anitem per ten seconds.

FIG. 2 is a schematic illustration of a system for measuring imagequality, according to an example.

In some examples, the computations of processor 130 may be implementedon the cloud 200, or other non-local infrastructure, e.g., a remotelocation from the mobile device,

Typically, the computations of processor 130 may be implemented on cloud200. An outgoing communication unit 240, in some examples, a componentof device 90, may communicate image 150, or some by-products of image150, to cloud 200. Typically, this may be a built-in capability on amobile phone platform.

Typically, cloud 200, e.g., the internet, comprises processing meanssuch as server farms 225. In some examples server farms 225 may run thecomputations typically run by processor 130. Results are from serverfarms 225 running the computations typically run by processor 130 may becommunicated to an incoming communication sub-unit 230, also typically abuilt-in capability of a mobile phone.

FIG. 3 is a schematic illustration depicting a detected value such asimage intensity at a specific location along line 160 between pair ofpoints 180 shown in FIG. 1 b. A signal 210 reflects this imageintensity.

Typically a segment 170 is a part of line 160 between points A and pointB. The pair of points 180, e.g., point A and point B, representing a setof pixels on image 150, the image captured via digital camera 110.

Typically, a smooth signal 220 may be calculated via algorithms, smoothsignal 220 may typically be a product of measured signal 210 of image150.

Typically, line 160 is divided into one or plurality of segments 170. Insome examples, line 160 may be divided into 10 segments, each segmentbeing of equal length. In some examples, each segment may not be ofequal length.

In some examples, the size of a segment 170 may typically be 100 pixels.In some examples, line 160 is divided into segments 170, the divisionsat coordinates of significant change in signal value.

In some examples, signal 210 may be filtered via algorithms to producesignal 220, typically, by the removal of unwanted frequencies. Typicallythe algorithm may average together neighboring values of signal 210using a predetermined weight. In some examples, the weights are selectedso that the algorithm would emulate visual perception given imageresolution and expected distance from the camera lens on digital camera110 to the measured image 150, and/or other image capture parameters.

In some examples, a predetermined number of values e.g., 5-10, e.g., 8,are averaged together without weights.

Typically, signal 210 may be subtracted from a polynomial of a smalldegree fitted to signal 210, where a small degree is typically 1 to 5;e.g. 3, to filter out low frequencies. In some examples, signal 210 maybe subtracted from its third polynomial fit, to filter out lowfrequencies.

Processor 130, described, above, may compute a parameter of imagequality per segment 170 of line 160. For the image quality parameters ofgrain or mottle, the processor typically compute the standard deviationof values in a segment via an algorithm.

Processor 130 distills, in some examples, the many parameters for themany segments 170 on line 160 to one parameter for line 160. In someexamples, processor 130 may be configured to calculate the standarddeviation for at one or a plurality of segments 170 on line 160.Typically, processor 130 may then calculate the median or minimumstandard deviation for the entire line 160, and store that in a memoryunit, the memory unit may be the same or similar to the memory unitdescribed above.

Typically, many parameters are distilled the many parameters for themany segments 170 on line 160 to one parameter for line 160 in referenceto the distribution of their values. In some examples, for very fastresults, the median or minimum functions may be used: e.g.,

Output 190=Median(plurality of parameters); or

Output 190=Minimum(plurality of parameters);

Typically, the outputted parameters list 80 may be stored, andrepresentative values, in some examples, the most representative values,for a captured image are identified and highlighted. The mostrepresentative values are typically the largest values. In similarembodiments a value representing a combined output parameter isdistilled for the list, by list operations such as median, mean ormaximum

Typically, application 100 may calculate a median or a minimum over theresults found at one or a plurality of iterations, multiply thoseresults by a factor, in some examples, when image intensity is expressedby numbers between 0 and 255, a factor of 4 may be used to obtain arange of values from 0 to 100. In some examples, processor 130 may beconfigured to drop insignificant digits.

Typically, application 100 may iterate the previous steps over one or aplurality of sets of points 180 over one or a plurality of images 150until the user exits application 100.

FIG. 4 is a method for the measurement of parameters of image quality,according to an example.

Typically, camera 110 coupled to device 90 is configured to capture oneor a plurality of images 150, the images typically representative of anarea 51, area 51 maybe representative of a larger image, the largerimage being analyzed by a user, as depicted in box 400.

In some examples, a processor 130 within device 90, or in some examples,a processor in a cloud 200, may select one or a plurality of pairs ofpoints 180 from the one or plurality of images 150, the pointsconnectable by a line 160, as depicted by box 410.

In some examples, a processor 130 within device 90, or in some examples,a processor in a cloud 200, may compute one or a plurality of imagequality parameters with regard to line 160, as depicted by box 420.

Typically, a processor 130 within device 90, or in some examples, aprocessor in a cloud 200, may compute one or a plurality ofrepresentative image quality parameters from the image qualityparameters, as depicted in box 430.

Typically, device 90 will output one or a plurality of representativeimage quality parameters, or in some examples an output of the algorithm190, the output of the algorithm 190, or other outputs to becommunicated by output unit 140, as depicted in box 440.

Examples may include apparatuses for performing the operations describedherein. Such apparatuses may be specially constructed for the desiredpurposes, or may comprise computers or processors selectively activatedor reconfigured by a computer program stored in the computers. Suchcomputer programs may be stored in a computer-readable orprocessor-readable non-transitory storage medium, any type of diskincluding floppy disks, optical disks, CD-ROMs, magnetic-optical disks,read-only memories (ROMs), random access memories (RAMs) electricallyprogrammable read-only memories (EPROMs), electrically erasable andprogrammable read only memories (EEPROMs), magnetic or optical cards, orany other type of media suitable for storing electronic instructions. Itwill be appreciated that a variety of programming languages may be usedto implement the teachings of examples as described herein. Examples mayinclude an article such as a non-transitory computer or processorreadable non-transitory storage medium, such as for example, a memory, adisk drive, or a USB flash memory encoding, including or storinginstructions, e.g., computer-executable instructions, which whenexecuted by a processor or controller, cause the processor or controllerto carry out methods disclosed herein. The instructions may cause theprocessor or controller to execute processes that carry out methodsdisclosed herein.

Different examples are disclosed herein. Features of certain examplesmay be combined with features of other examples; thus, certain examplesmay be combinations of features of multiple examples. The foregoingdescription of the examples has been presented for the purposes ofillustration and description. It is not intended to be exhaustive or tolimit. It should be appreciated by persons skilled in the art that manymodifications, variations, substitutions, changes, and equivalents arepossible in light of the above teaching. It is, therefore, to beunderstood that the appended claims are intended to cover all suchmodifications and changes.

What is claimed is:
 1. A mobile device comprising: a digital camera tocapture an image; a non-transitory computer-readable medium storingcomputer-executable code; and a processor to execute thecomputer-executable code to: select pair of points from the image, thepair of points connectable by a line; divide the line into a pluralityof line segments; compute a segment image quality parameter for eachline segment; compute a line image quality parameter for the line fromthe segment image quality parameters; and compute an image qualityparameter for the image from the line image quality parameter.
 2. Themobile device of claim 1, wherein the processor is to execute thecomputer-executable code to further filter out high frequency noise froman image captured by the digital camera.
 3. The mobile device of claim1, wherein the processor is to execute the computer-executable code tofurther filter out low frequency noise from an image captured by thedigital camera.
 4. A method comprising: capturing an image with adigital camera; selecting, by a processor, a pair of points from theimage, the pair of points connectable by a line; dividing, by theprocessor, the line into a plurality of line segments; computing, by theprocessor, a segment image quality parameter for each line segment;computing, by the processor, a line image quality parameter for the linefrom the segment image quality parameters; computing, by the processor,an image quality parameter for the image from the line image qualityparameter; and outputting, by the processor, the image qualityparameter.
 5. The method of claim 4, wherein further comprisingfiltering out high frequency noise from an image captured by the digitalcamera.
 6. The method of claim 4, wherein further comprising filteringout low frequency noise from an image captured by the digital camera. 7.The method of claim 4, wherein the processor is located in a remotelocation from the mobile device and configured to be in communicationwith the mobile device.
 8. The method of claim 4, wherein a lens isplaced in front of the digital camera to capture the image.
 9. Anon-transitory computer readable medium comprising instructions formeasuring image quality parameters, which when executed cause aprocessor to: capture an image; select a pair of points from the image,the pair of points connectable by a line; divide the line into aplurality of line segments; compute a segment image quality parameterfor each line segment; compute a line image quality parameter for theline from the segment image quality parameters; and compute an imagequality parameter for the image from the line image quality parameter.10. The non-transitory computer readable medium of claim 9, wherein theinstructions when executed further cause the processor to filter outhigh frequency noise from an image captured by the digital camera. 11.The non-transitory computer readable medium of claim 9, wherein theinstructions when executed further cause the processor to filter out lowfrequency noise from an image captured by the digital camera.
 12. Themobile device of claim 1, wherein the processor is configured to selecta plurality of pairs of points from each image in a random manner. 13.The mobile device of claim 1, wherein the line image quality parameterfor the line is computed by: determining a standard deviation of thesegment image quality parameter for each line segment; and determining amedian of the standard deviations of the segment image qualityparameters for the line segments, as the line image quality parameterfor the line.
 14. The mobile device of claim 1, wherein the line imagequality parameter for the line is computed by: determining a standarddeviation of the segment image quality parameter for each line segment;and determining a minimum of the standard deviations of the segmentimage quality parameters for the line segments, as the line imagequality parameter for the line.